Macアプリと連携する独自拡張子の作り方
概要
独自拡張子が欲しかったのです。どうせ内容はテキストなんですけど。
ダブルクリックしたら特定のアプリが起動する的な。
はい。
.byaa拡張子のファイルをダブルクリックすると開くアプリケーションを作る
必要な設定は2つ。
・AppDelegateに、
- (BOOL)application:(NSApplication * )theApplication openFile:(NSString * )filename
メソッドを書く
・Xcode > ProjectNavigator > TARGETS > なんかtarget > Info > の下の方の、Document Types 項目の+を押す
なんか設定画面が出来るので、Extensionsに形式を指定する。どっと要らない。
これだけ。
これだけで
.byaaファイルをダブルクリックすると、アプリが起動するようになる。
ダブルクリックで.byaaファイルを開くと、- (BOOL)application:(NSApplication * )theApplication openFile:(NSString * )filename メソッドに通知が行き、
filenameにダブルクリックしたファイルパスが入るので、そこで読むとかすれば良いと思う。
ちなみに通知はアプリケーションのLaunchより速く発生する。
- (BOOL)application:(NSApplication * )theApplication openFile:(NSString * )filename
↓
- (void)applicationDidFinishLaunching:(NSNotification * )aNotification
返り値は、ドキュメントいわく
YES if the file was successfully opened or NO if it was not.
オープンが旨くいったらYes返すと良いよ、他はNoでいいんじゃね
↓
YESでもNOでもアプリは起動する。し、起動しててももちろん発生する。
何に使っているかというと、NSAppが発生させるNotificationのトリガーに使っている。
ただ、表立って効果がない。区別は出来る。 Notificationを無差別に拾ってみると、なんか違いがあると思う。
いやーーーらっくちんだなァ~。